package com.ruoyi.erp.service;

import com.ruoyi.erp.domain.XzgOrder;
import com.ruoyi.erp.domain.dto.XzgOrderExcelDto;
import com.ruoyi.erp.domain.vo.XzgOrderVo;

import java.util.List;
import java.util.Map;

/**
 * @author qwc
 * @Date 2021/12/6 10:36
 * @Package com.ruoyi.erp.service
 * @Description
 */
public interface IXzgOrderService {

    /**
     * 添加订单
     *
     * @param order
     * @return
     */
    int insertOrder(XzgOrder order);

    /**
     * 分页获取订单页面
     *
     * @param order
     * @return
     */
    List<XzgOrderVo> selectOrderList(XzgOrderVo order);

    /**
     * 根据id获取order
     *
     * @param orderId
     * @return
     */
    XzgOrder selectOrderById(Long orderId);

    /**
     * 修改order
     *
     * @param order
     * @return
     */
    int updateOrder(XzgOrder order);

    /**
     * 查询是否存在相同订单合同号
     *
     * @param orderId
     * @param orderCode
     * @return
     */
    Boolean selectSameCode(Integer orderId, String orderCode);

    /**
     * 根据订单id操作订单
     *
     * @param order
     * @param orderStatus
     * @return
     */
    int changeOrderStatus(XzgOrder order, String orderStatus);

    /**
     * 根据id逻辑删除订单
     *
     * @param orderIds
     * @param username
     * @return
     */
    int deleteOrderById(Long[] orderIds, String username);

    /**
     * 导入订单数据
     *
     * @param orders
     * @param updateSupport
     * @param username
     * @return
     */
    Map<String, List<String>> importOrders(List<XzgOrderExcelDto> orders, boolean updateSupport, String username);
}
